home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / glass / glass.lha / GLASS / dtm / test4.gl < prev    next >
Text File  |  1991-06-18  |  699b  |  37 lines

  1.  
  2. Basetype E;
  3.  
  4. Atom
  5.    not :- E => E,
  6.    nand2 :- E & E => E,
  7.    adc :- E & E & E => E & E,
  8.    div2 :- E => E;
  9.  
  10.  
  11. Def
  12.    sel :- E & E & E => E;
  13.    sel [s, a, b] = nand2 [nand2 [not s, a], nand2 [s, b]];
  14.  
  15.  
  16. Mac
  17.    divchain :- Int -> E => E -> E => E;
  18.    divchain 0 A in = in;
  19.    divchain n A in = divchain (n-1) A (A in);
  20.  
  21. Def
  22.    div1024 :- E => E;
  23.    div1024 in = divchain 10 div2 in;
  24.  
  25. Mac
  26.    adder :- Int -: n -> E^n & E^n & E => E & E^n;
  27.    adder 0 [[],[],c] = [c,[]];
  28.    adder n [a:as, b:bs, c] = [cout, s:ss]
  29.       where
  30.          [v,s] = adc [a,b,c];
  31.          [cout,ss] = adder (n-1) [as, bs, v];
  32.       endwhere;
  33.  
  34. Def
  35.    adder4 :- E^4 & E^4 & E => E & E^4;
  36.    adder4 [as,bs,c] = adder 4 [as,bs,c];
  37.